Formal Certification of Android Bytecode
نویسندگان
چکیده
Android is an operating system that has been usedin a majority of mobile devices. Each application in Androidruns in an instance of the Dalvik virtual machine, which isa register-based virtual machine (VM). Most applications forAndroid are developed using Java, compiled to Java bytecodeand then translated to DEX bytecode using the dx tool inthe Android SDK. In this work, we aim to develop a type-based method for certifying non-interference properties of DEXbytecode, following a methodology that has been developed forJava bytecode certification by Barthe et al. To this end, we developa formal operational semantics of the Dalvik VM, a type systemfor DEX bytecode, and prove the soundness of the type systemwith respect to a notion of non-interference. We then studythe translation process from Java bytecode to DEX bytecode,as implemented in the dx tool in the Android SDK. We showthat an abstracted version of the translation from Java bytecodeto DEX bytecode preserves the non-interference property. Moreprecisely, we show that if the Java bytecode is typable in Bartheet al’s type system (which guarantees non-interference) then itstranslation is typable in our type system. This result opens upthe possibility to leverage existing bytecode verifiers for Java tocertify non-interference properties of Android bytecode.
منابع مشابه
AppSpear: Bytecode Decrypting and DEX Reassembling for Packed Android Malware
As the techniques for Androidmalware detection are progressing, malware also fights back through deploying advanced code encryption with the help of Android packers. An effective Android malware detection therefore must take the unpacking issue into consideration to prove the accuracy. Unfortunately, this issue is not easily addressed. Android packers often adopt multiple complex anti-analysis ...
متن کاملSymDroid: Symbolic Execution for Dalvik Bytecode
Apps on Google’s Android mobile device platform are written in Java, but are compiled to a special bytecode language called Dalvik. In this paper, we introduce SymDroid, a symbolic executor that operates directly on Dalvik bytecode. SymDroid begins by first translating Dalvik into μ-Dalvik, a simpler language that has only 16 instructions, in contrast to Dalvik’s more than 200 instructions. We ...
متن کاملStatic Analysis of App Dependencies in Android Bytecode
Android applications (apps) are highly interactive, but have— by design—no facilities to declare dependencies reflecting such interactions. Dependencies are hidden in code and uncovering them requires static analysis techniques. This technical note presents our static analysis infrastructure to extract dependency information from Android (Dalvik) bytecode. This infrastructure is used in a study...
متن کاملFreeMarket: Shopping for free in Android applications
Google recently launched Android Market In-app Billing (IAB), a service that allows developers to sell digital content in their Android applications by delegating the billing responsibilities to Google. This feature has already gained immense popularity with developers—16 of the top 20 grossing apps in the Android Market rely on IAB for generating revenue. However, despite Google’s recommendati...
متن کاملAndroid: From Reversing to Decompilation
This talk deals with Android’s bytecode analysis. The Android system is now widespread, and lots of applications are developed each days. These applications are mostly written in Java, though it is possible to do calls to binaries or shared libraries. To be executed on the DVM the Java source code is translated into Java bytecode (.class files) and then a tool named ‘dx’ is used to convert it i...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- CoRR
دوره abs/1504.01842 شماره
صفحات -
تاریخ انتشار 2015